package com.jmxcfc.blfsc.cfca.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jmxcfc.fs.common.entity.AutoFillEntity;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.io.Serializable;

/**
 * <p>
 * CFCA中金国信签章请求明细表
 * </p>
 *
 * @author pbs
 * @since 2024-08-25
 */
@Data
@TableName("CFCA_SEND_DETAIL_SUB")
public class SendDetailSub extends AutoFillEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 请求业务号(上游传,唯一标识,8位时间+32为uuid)
     */
    @TableId(value = "REQUEST_NO", type = IdType.INPUT)
    private String requestNo;

    /**
     * 签署类型(1:签署个人签名企业签名、2:只签署企业签名、3:只签署个人签名)
     */
    private String signType;

    /**
     * 单笔业务流水号,一次请求对应一个流水号(个人、企业章的都传该值)
     */
    private String serialNo;

    /**
     * 签章文件地址
     */
    private String pdfFilePath;

    /**
     * 数据源类型:1:pdf文件路径、2:pdf文件
     */
    private String inputType;

    /**
     * 时间戳的方式,默认值0(0:实时访问CFCA时间戳服务、1:使用从CFCA 购置并在本地部署的时间戳服务器产品)
     */
    private String timestampChannel;

    /**
     * 获取场景证书的方式,默认值为 0(0:实时访问CFCA时间戳服务、1:使用从CFCA 购置并在本地部署的时间戳服务器产品)
     */
    private String sceneCertChannel;

    /**
     * 签章内容,个人签章参数(签章文本或者签章图片地址)
     */
    private String sealText;

    /**
     * 签章人姓名(个人章或企业章都需要该参数)
     */
    private String sealPerson;

    /**
     * 证件号码(个人章时需要传)
     */
    private String identificationNo;

    /**
     * 证件类型(个人章时需要传,0:居民身份证)
     */
    private String identificationType;

    /**
     * 电话号码
     */
    private String phoneNo;

    /**
     * ,个人章或企业章都需要该参数,取2值(1:空白域签章、2:坐标签章,左上角为原点、3:关键字签章)
     */
    private String sealType;

    /**
     * 坐标值是否来源于客户端,个人章或企业章都需要该参数,默认为 1(1: 客户端、0: 其他)
     */
    private String isCenterCoordinate;

    /**
     * 签章页码(个人章)
     */
    private String pageNo;

    /**
     * 签章位置x 坐标(个人章)
     */
    private String lx;

    /**
     * 签章位置y坐标(个人章)
     */
    private String ly;

    /**
     * 签章内容类型,企业章时需要传,取值1(1:印章绑定图片、2 外传图片、3:外传文本)
     */
    private String type;

    /**
     * 印章编码(企业章)
     */
    private String sealCode;

    /**
     * 印章密码(企业章)
     */
    private String sealPassword;

    /**
     * 签章页码(企业章)
     */
    private String pageNoEnt;

    /**
     * 签章位置x 坐标(企业章)
     */
    private String lxEnt;

    /**
     * 签章位置y坐标(企业章)
     */
    private String lyEnt;

    /**
     * 接口调用状态(成功:S、失败:F、异常:E)
     */
    private String apiStatus;

    /**
     * 接口调用描述(成功:S、失败:F、异常:E)
     */
    private String apiStatusDesc;

    /**
     * 签署后的pdf文件存放路径(outputFilepath不为空时,pdf 文档输出到此路径)
     */
    private String outputFilePath;

    /**
     * 响应码(000000:成功、非000000时:表示错误码)
     */
    private String code;

    /**
     * 响应码为非 000000 时,返回错误信息
     */
    private String message;

    /**
     * CFCA响应的业务流水号
     */
    private String transactionNo;


    public void setMessage(String message) {
        this.message = StringUtils.substring(message, 0, 256);
    }
}
